# 1. 请写出列表支持的所有方法及说明（例如: append 向列表末尾添加元素）
# append 向列表末尾添加元素
# insert 向列表指定位置插入元素
# pop 弹出最后一个元素
# remove 删除第一个出现的指定元素
# count 计算指定元素的个数
# clear 清空列表
# copy 浅拷贝列表
# extend 将一个可迭代对象的元素附加到列表
# index 返回指定元素第一次出现的位置
# reverse 将列表倒序排列
# sort 给列表排序

# 2. 说明列表的浅拷贝和深拷贝的区别
# 浅拷贝只拷贝地址，不拷贝地址指向的内容，如果原列表中的元素变化，拷贝的列表会同步变化
# 深拷贝会拷贝地址指向的最原始的元素，相当于创建了一个内容一样的新列表，新列表的内容不会随原列表的变化而变化

# 3. 说明列表和元组的相同点和不同点
# 相同点：都是线性表，有索引，有顺序
# 不同点：列表中的元素可变，元组中的元素不可变

# 4. 请写出字符串支持的所有方法及说明（例如: lower 返回字符串的小写）
# capitalize 首字母大写
# casefold 将所有大写转换为小写
# center 返回指定长度的文本并使原始文本居中
# count 计算指定字符串出现次数
# encode 使用指定规则编码
# find 查找字符串
# format 自定义字符串格式
# is+type 判断是否为某个类型
# join 拼接字符串
# partition 按给定分隔符将字符串分成三份
# replace 替换
# lower 返回字符串小写
# uper 返回字符串大写

# 5. 有如下一个字符串变量logs，请统计出每种请求类型的数量（提示：空格分割的第2列是请求类型），得到如下输出：
# POST 2
# GET 3
#
# 下边是logs变量：

logs = '''
111.30.144.7 "POST /mock/login/?t=GET HTTP/1.1" 200
111.30.144.7 "Get /mock/users/?t=POST HTTP/1.1" 200
111.13.100.92 "Post /mock/login/ HTTP/1.1" 200
223.88.60.88 "GET /mock/users/?t=POST HTTP/1.1" 200
111.30.144.7 "GET /mock/users/ HTTP/1.1" 200
'''
requests = logs.split('\n')
dict_request_counter = {}
for request in requests:
    if request:
        request_type = request.split(' \"')[1].split(' ')[0].upper()
        if dict_request_counter.get(request_type):
            dict_request_counter[request_type] += 1
        else:
            dict_request_counter[request_type] = 1

for key,item in dict_request_counter.items():
    print(key,item)
